package com.umpay.dto.merAccess.req.consume;

import java.util.List;

import javax.validation.Valid;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;

	/**
	 * @ClassName: ConsumeNetBankReq  
	 * @Description: 借记卡消费下单请求类
	 * @author liuhaidong  
	 * @date Jan 17, 2018
	 */
	public class ConsumeNetBankReq extends CommonReq{
				
		/**
		 * 商户订单号
		 */
		@NotEmpty(message = "商户订单号不能为空")		
		@Pattern(message = "商户订单号格式不正确")
		private String order_id;
		
		/**
		 * 商户订单号
		 */
		@NotEmpty(message = "前台通知地址不能为空")		
		@Pattern(message = "前台通知地址格式不正确")
		private String ret_url;
		
		/**
		 * 商户订单号
		 */
		@NotEmpty(message = "后台通知地址不能为空")		
		@Pattern(message = "后台通知地址格式不正确")
		private String notify_url;
		
		
		
		
		/**
		 * 商户订单日期
		 */
		@NotEmpty(message = "商户订单日期不能为空")		
		@Pattern(message = "商户订单日期格式不正确")
		private String mer_date;
		
		/**
		 * 平台用户号
		 */
		private String out_user_id;
		
		/**
		 * 用户类型
		 */
		private String out_user_type;
		
		
		/**
		 * 支付方式
		 */
		@NotEmpty(message = "支付方式不能为空")		
		@Pattern(message = "支付方式格式不正确")
		private String pay_type;
		
		/**
		 * 发卡行编号
		 */
		@NotEmpty(message = "发卡行编号不能为空")		
		@Pattern(message = "发卡行编号格式不正确")
		private String gate_id;
		
		/**
		 * 充值金额
		 */
		@NotEmpty(message = "金额不能为空")		
		@Pattern(message = "金额格式不正确")
		private String 	amount;
		/**
		 * 收货人
		 */
		private String 	consignee_name;
		/**
		 * 收货地址
		 */
		private String 	consignee_address;
		/**
		 * 联系电话
		 */
		private String 	consignee_phone;
		/**
		 * 备注信息
		 */
		private String 	remark;
		
	    // 集合  子订单信息
	    @Valid
	    private List<SubOrderInfo> sub_order_info;

		public String getRet_url() {
			return ret_url;
		}

		public void setRet_url(String ret_url) {
			this.ret_url = ret_url;
		}

		public String getNotify_url() {
			return notify_url;
		}

		public void setNotify_url(String notify_url) {
			this.notify_url = notify_url;
		}

		public String getOrder_id() {
			return order_id;
		}

		public void setOrder_id(String order_id) {
			this.order_id = order_id;
		}

		public String getMer_date() {
			return mer_date;
		}

		public void setMer_date(String mer_date) {
			this.mer_date = mer_date;
		}

		public String getOut_user_id() {
			return out_user_id;
		}

		public void setOut_user_id(String out_user_id) {
			this.out_user_id = out_user_id;
		}

		public String getOut_user_type() {
			return out_user_type;
		}

		public void setOut_user_type(String out_user_type) {
			this.out_user_type = out_user_type;
		}

		public String getPay_type() {
			return pay_type;
		}

		public void setPay_type(String pay_type) {
			this.pay_type = pay_type;
		}

		public String getGate_id() {
			return gate_id;
		}

		public void setGate_id(String gate_id) {
			this.gate_id = gate_id;
		}

		public String getAmount() {
			return amount;
		}

		public void setAmount(String amount) {
			this.amount = amount;
		}

		public String getConsignee_name() {
			return consignee_name;
		}

		public void setConsignee_name(String consignee_name) {
			this.consignee_name = consignee_name;
		}

		public String getConsignee_address() {
			return consignee_address;
		}

		public void setConsignee_address(String consignee_address) {
			this.consignee_address = consignee_address;
		}

		public String getConsignee_phone() {
			return consignee_phone;
		}

		public void setConsignee_phone(String consignee_phone) {
			this.consignee_phone = consignee_phone;
		}

		public String getRemark() {
			return remark;
		}

		public void setRemark(String remark) {
			this.remark = remark;
		}

		public List<SubOrderInfo> getSub_order_info() {
			return sub_order_info;
		}

		public void setSub_order_info(List<SubOrderInfo> sub_order_info) {
			this.sub_order_info = sub_order_info;
		}

		@Override
		public String toString() {
			return "ConsumeNetBankReq [order_id=" + order_id + ", mer_date=" + mer_date + ", out_user_id=" + out_user_id
					+ ", out_user_type=" + out_user_type + ", pay_type=" + pay_type + ", gate_id=" + gate_id
					+ ", amount=" + amount + ", consignee_name=" + consignee_name + ", consignee_address="
					+ consignee_address + ", consignee_phone=" + consignee_phone + ", remark=" + remark
					+ ", sub_order_info=" + sub_order_info + "]";
		}

	}
		